package com.hong.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;

import java.io.InputStream;
import java.util.zip.ZipInputStream;

/**
 * @Auther: csh
 * @Date: 2019/11/19 18:56
 * @Description:流程定义的部署
 *
 * act_re_deployment    部署信息
 * act_ge_property      流程定义的一些信息
 * act_ge_bytearray     流程定义bpmn文件及png文件
 *
 */
public class ActivitiDeployment {

    //流程定义部署 流程制作出后要上传到服务器 zip文件要便于上传
    public static void main(String[] args) {
        //1.创建ProcessEngine对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //2.得到RepositoryService实例
        RepositoryService repositoryService = processEngine.getRepositoryService();

        //3.转化出zipInputStream流对象
      //  InputStream is  = ActivitiDeployment.class.getClassLoader().getResourceAsStream("diagram/holidayBPMN.zip");

         //将inputstream流转化为zipInputStream流
        //ZipInputStream zipInputStream = new ZipInputStream(is);

        //3.进行部署
       /* Deployment deployment = repositoryService.createDeployment()
                .addZipInputStream(zipInputStream)
                .name("请假申请单流程")
                .deploy();*/
        Deployment deployment = repositoryService.createDeployment()
                //添加bpmn资源
                .addClasspathResource("diagram/holiday4.bpmn")
                //添加图片文件
                .addClasspathResource("diagram/holiday4.png")
                .name("请假申请单流程")
                .deploy();
        //4.输出部署的一些信息
        System.out.println(deployment.getName());
        System.out.println(deployment.getId());

    }
}
